home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / gfa / gfaexprt.lzh / GFAXPERT.LIB / INPUT.LST < prev    next >
Encoding:
File List  |  1986-10-19  |  3.5 KB  |  158 lines

  1. ' *****************
  2. ' *** INPUT.LST ***
  3. ' *****************
  4. '
  5. DEFWRD "a-z"
  6. '
  7. > PROCEDURE yes.no.input
  8.   ' *** choose between YES and NO
  9.   ' *** YES = <Y> of <y> of <Return> or left mouse-button
  10.   ' *** NO = <N> of <n> of right mouse-button
  11.   ' *** global :  YES!   NO!
  12.   LOCAL x,y,in$,w1$,w2$,k
  13.   CLR yes!,no!,in$,k
  14.   HIDEM
  15.   x=CRSCOL
  16.   y=CRSLIN
  17.   w1$="(y/n)"
  18.   w2$=SPACE$(5)
  19.   REPEAT          ! clear key-buffer
  20.     in$=INKEY$
  21.   UNTIL in$=""
  22.   PRINT AT(x,y);w1$;
  23.   REPEAT
  24.     PAUSE 30
  25.     SWAP w1$,w2$
  26.     PRINT AT(x,y);w1$;
  27.     k=MOUSEK
  28.     in$=INKEY$
  29.   UNTIL INSTR("yYnN"+CHR$(13),in$) OR k>0
  30.   IF INSTR("yY"+CHR$(13),in$) OR k=1
  31.     yes!=TRUE
  32.     PRINT AT(x,y);"YES  ";
  33.   ELSE
  34.     no!=TRUE
  35.     PRINT AT(x,y);"NO   ";
  36.   ENDIF
  37.   PAUSE 10             ! short pause for release of button
  38. RETURN
  39. ' **********
  40. '
  41. > PROCEDURE pos.number.input(len,VAR number#)
  42.   ' *** geformatteerde input van positieve getallen
  43.   LOCAL x,y,in$,txt$,enter!
  44.   HIDEM
  45.   x=CRSCOL
  46.   y=CRSLIN
  47.   LET field$=STRING$(len,".")
  48.   PRINT LEFT$("_"+field$,len);
  49.   REPEAT
  50.     REPEAT
  51.       in$=INKEY$
  52.     UNTIL LEN(in$)=1
  53.     IF in$=CHR$(13)
  54.       enter!=TRUE
  55.     ENDIF
  56.     IF in$=backspace$
  57.       IF LEN(txt$)>0
  58.         txt$=LEFT$(txt$,LEN(txt$)-1)
  59.       ELSE
  60.         OUT 2,7
  61.       ENDIF
  62.     ENDIF
  63.     IF LEN(txt$)<len AND INSTR(".0123456789",in$)
  64.       txt$=txt$+in$
  65.     ELSE
  66.       OUT 2,7
  67.     ENDIF
  68.     PRINT AT(x,y);LEFT$(txt$+"_"+field$,len);
  69.   UNTIL enter!
  70.   PRINT AT(x,y);VAL(txt$);SPACE$(len-LEN(txt$));
  71.   number#=VAL(txt$)
  72. RETURN
  73. ' **********
  74. '
  75. > PROCEDURE pos.integer.input(len,VAR number%)
  76.   ' *** geformatteerde input van positieve integers
  77.   LOCAL x,y,in$,txt$,enter!
  78.   HIDEM
  79.   x=CRSCOL
  80.   y=CRSLIN
  81.   LET field$=STRING$(len,".")
  82.   PRINT LEFT$("_"+field$,len);
  83.   REPEAT
  84.     REPEAT
  85.       in$=INKEY$
  86.     UNTIL LEN(in$)=1
  87.     IF in$=CHR$(13)
  88.       enter!=TRUE
  89.     ENDIF
  90.     IF in$=backspace$
  91.       IF LEN(txt$)>0
  92.         txt$=LEFT$(txt$,LEN(txt$)-1)
  93.       ELSE
  94.         OUT 2,7
  95.       ENDIF
  96.     ENDIF
  97.     IF LEN(txt$)<len AND INSTR("0123456789",in$)
  98.       txt$=txt$+in$
  99.     ELSE
  100.       OUT 2,7
  101.     ENDIF
  102.     PRINT AT(x,y);LEFT$(txt$+"_"+field$,len);
  103.   UNTIL enter!
  104.   PRINT AT(x,y);VAL(txt$);SPACE$(len-LEN(txt$));
  105.   number%=VAL(txt$)
  106. RETURN
  107. ' **********
  108. '
  109. > PROCEDURE text.input(default$,len,VAR txt$)
  110.   ' *** geformatteerde input van tekst
  111.   LOCAL x,y,in$,code$,enter!
  112.   HIDEM
  113.   x=CRSCOL
  114.   y=CRSLIN
  115.   LET field$=STRING$(len,".")
  116.   txt$=default$
  117.   PRINT AT(x,y);LEFT$(txt$+"_"+field$,len);
  118.   GRAPHMODE 3
  119.   BOX (x-1)*8-2,(y-1)*char.height-2,(x-1)*8+len*8+2,y*char.height+2
  120.   PLOT (x-1)*8-2,(y-1)*char.height-2
  121.   GRAPHMODE 1
  122.   DO
  123.     REPEAT
  124.       in$=INKEY$
  125.     UNTIL in$<>""
  126.     EXIT IF in$=CHR$(13)
  127.     IF in$=backspace$
  128.       IF LEN(txt$)>0
  129.         txt$=LEFT$(txt$,LEN(txt$)-1)
  130.       ELSE
  131.         OUT 2,7
  132.       ENDIF
  133.     ENDIF
  134.     IF in$=esc$
  135.       txt$=""
  136.     ENDIF
  137.     IF ASC(in$)=1            ! <CONTROL> <A> voor invoer speciale karakters
  138.       code$=INPUT$(3)        ! ASCII-code (3 cijfers !!)
  139.       in$=CHR$(VAL(code$))
  140.     ENDIF
  141.     IF LEN(txt$)<len AND in$>=CHR$(32) AND LEN(in$)=1
  142.       txt$=txt$+in$
  143.     ELSE
  144.       IF in$<>esc$ AND in$<>backspace$
  145.         OUT 2,7
  146.       ENDIF
  147.     ENDIF
  148.     PRINT AT(x,y);LEFT$(txt$+"_"+field$,len);
  149.   LOOP
  150.   GRAPHMODE 3
  151.   BOX (x-1)*8-2,(y-1)*char.height-2,(x-1)*8+len*8+2,y*char.height+2
  152.   PLOT (x-1)*8-2,(y-1)*char.height-2
  153.   GRAPHMODE 1
  154.   PRINT AT(x,y);txt$;SPACE$(len-LEN(txt$));
  155. RETURN
  156. ' **********
  157. '
  158.